//
//  SwiftUIView_Sheets.swift
//  SwiftUIPractice
//
//  Created by 今天又快要下班了啊 (external - Project) on 2024/9/16.
//

import SwiftUI

struct SwiftUIView_Sheets: View {
    
    @State var showSheet = false
    
    var body: some View {
        
        ZStack {
            
            Color.green.ignoresSafeArea()
            
            Button("这是一个按钮") {
                showSheet.toggle()
            }
            
//            //全屏显示
//            .fullScreenCover(isPresented: $showSheet, content: {
//                SceondScreen()
//            })
            
            
            // 上面的全屏和下面的模态 不能同时使用
            

            
            // 这就是一个简单的 弹出 床单的方法
            .sheet(isPresented: $showSheet, content: {
                // Text("这里是一段文字")  //我们可以把这个东西换成一个单独的视图
                SceondScreen()
                
                // 还有, 是就是不要在这个里面 写 if else 判断  添加这个就会报错? 但是号线不会报错?
//                if showSheet {
//                    SceondScreen()
//                } else {
//                    ThirdScreen()
//                }
            })
            
            // 注意!!  不能连续添加两次 .sheet(isPresented: $showSheet, content: {  因为会不起作用
            
        }

     }
}


struct SceondScreen: View {
    ///使用这种东西 来关闭这个页面
    ///这个东西就是一个 Binding?
    @Environment(\.presentationMode) var presentationMode_A  //需要去问一下GPT 这个东西过时了,新的用法是什么
    var body: some View {
        ZStack (alignment: .topLeading) {
            Color.brown.ignoresSafeArea()
            Button {
                presentationMode_A.wrappedValue.dismiss()
            } label: {
                Image(systemName: "xmark")
                    .foregroundStyle(.white)
                    .font(.largeTitle)
                    .padding(20)
            }
        }
    }
}


struct ThirdScreen: View {
    @Environment(\.presentationMode) var presentationMode
    var body: some View {
        ZStack (alignment: .topLeading) {
            Color.red.ignoresSafeArea()
            Button {
                presentationMode.wrappedValue.dismiss()
            } label: {
                Image(systemName: "xmark")
                    .foregroundStyle(.white)
                    .font(.largeTitle)
                    .padding(20)
            }
        }
    }
}


#Preview {
    SwiftUIView_Sheets()
    //    SceondScreen()
}
